Methods and media for efficiently processing data selected for recording to optical media

ABSTRACT

Methods and media for efficiently processing data to be recorded to optical media are provided. In one example, a method for processing data to be recorded to optical media is disclosed. The method includes receiving a request to record data to optical media, and mapping a source path for the data if the file path has not been previously mapped or associating the data to be written with a source path, which has been previously mapped, wherein the source path includes a complete path from a root directory to a file location of the data. The method further includes saving the source path for the data to a file system database for efficiently processing data selected to be recorded to the optical media, and retrieving the source path from the file system database in a single step without successive tracing to the root directory to record the data to optical media.

CLAIM OF PRIORITY

This application is a continuation of U.S. application Ser. No.09/967,786, filed on Sep. 28, 2001, and is incorporated herein byreference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to the recording of data ontooptical media, and more specifically to a method for more efficientlyprocessing data files selected for recording to an optical media.

2. Description of the Related Art

The storage of data to optical media has gradually, but steadily,increased in popularity and frequency of use. A typical consumercomputer owner and operator counts a re-writable compact disc, or otheroptical media, drive among standard equipment for the home or officecomputer system. As the use of optical media continues to grow, so toodoes the demand for faster and less complicated recording applicationsand processes.

As is known, the process for recording data to an optical mediagenerally includes the selection of data files to be recorded, alsoknown as “burned,” to an optical media, the processing of the files forrecording, and the actual burning of the files to the target opticalmedia. The recording speed of the selected data is affected by suchvariables as the quantity, size, and location of the selected files, thetime required to process the selected data files for burning to a targetoptical media, and the write speed of the optical media-recording deviceselected for the burn.

In pursuing efforts to increase the speed of recording to optical media,or decreasing the recording time, the quantity, size and location ofselected files can be treated as constants, and hardware improvementsare regularly improving the recording speed of optical media recordingdevices. The processing of data files for recording presents additionalopportunities for developing faster recording to optical media whilemaintaining simplicity for ease of consumer use.

The prior art processing of files in preparation for burning to opticalmedia consists generally of a plurality of process operations includingsuch operations as the examination of selected data files, the creationof record data structures, the determination of a writing order, thecreation of ordering data structures, the generation of a file system,and other such process operations to enable the locating of selectedsource files and burning of the files to a target optical media.

One of the plurality of process operations performed in the preparationof selected files to be burned to optical media is the generation of thefile system. Typically, the generating of the file system includes themapping of the source path of each of the files selected to be burned toan optical media, in addition to a plurality of process operationscompleted to place each of the selected files onto the target opticalmedia. All files to be burned to an optical media are entered into adatabase. This database calls a source path from a path table or pathtree configured to contain a file source path for each of the filesselected to be recorded. During a typical recording process, theprocessing of the files in preparation for the burn includes theverification of each of the selected files to ensure that they exist inthe location identified, that they can be opened, that they are the sizethat they have been identified to be, and other such verificationprocesses. Each file in the constructed database is verified, and aseach file is verified, the database calls the path tree or path table tolocate a selected file at its source using the stored source path.

FIG. 1A shows a block diagram 10 of this single process of calling thesource path. A database 12 is constructed during the processing of thefiles selected for recording to an optical media in preparation for theburn. The database 12 includes, for example, the source file name,location, size, type, and other such identifying data. The processingoperations include, for example, the verification of the selected filesin which the general integrity of the files is verified in preparationfor burning the files to a target media. As each file is verified, thedatabase 12 calls the path tree 14 to obtain the source path for theselected file.

Prior art processing is typically configured to conserve memory. Often,the conservation of memory resources is at the cost of performance. Inthe example of the processing of data files in preparation to burn to atarget optical media, the conservation is exemplified in the manner inwhich the path tree 14 stores and retrieves source paths of files. Eachtime a source file is stored to the path tree 14, a shorthand or key isused to identify each node of the source path. FIG. 1 B shows a blockdiagram of an exemplary source path 20 with nodes identified by keys0-6. In FIG. 1B, a source path that is on root c:\ is shown. The root,c:\, is shown in block 22 and is identified as node 0 at 24. In theexemplary source path 20, each node is a directory that can be tracedback to root c:\ at node 0, 24. By way of example, file2 in block 52 isin the directory source6 in block 46. The directory source 6 isidentified as node 6 at 48. As can be seen, source6 in block 46, is asub-directory of source5 in block 42, which is a sub-directory ofsource4 in block 38, which is a sub-directory of source3 in block 34,and so forth back to the root, c:\ in block 22. Each of directoriessource1 at 26, source2 at 30, source3 at 34, source4 at 38, source5 at42, and source6 at 46, can contain any number of files or additionalsub-directories. Each directory is shown in FIG. 1B as being identifiedas a node. By following arrows 21, each node can be traced back to itsparent, and eventually to the root, c:\ at 22. An exemplary path forfile2 in block 52 is therefore file2 in block 52 at node 6, 48, which istraced to node 5 at 44, which is traced to node 4 at 40, which is tracedto node 3 at 36, which is traced to node 2 at 32, which is traced tonode 1 at 28 and back to the root at node 0, 24. A typical pathstatement for file2 at block 52 would be:c:\source1\source2\source3\source4\source5\source6\file2. A shorthandpath notation for the same file might instead be: 6\file2, where it isknown that “6” represents node 6 at 48, and the key for identifying node6, 48, is known or identified in the path tree 14 (see FIG. 1A).

When files are processed during preparation for burning to opticalmedia, the use of nodes in source paths conserves memory by utilizing ashorthand notation instead of the complete source path. FIG. 1C shows atypical source path 52 a for file2 at 52 as described above in referenceto FIG. 1B. The illustrated source path 52 a identifies file2 at 52 as afile in the directory at node 6, 48. In order to verify file2 at 52,however, the entire source path must be identified in order to verify acorrect source path for the file, and to locate and verify the file asdescribed above. The source path 52 a therefore calls “get(6)” to returnthe source path to the last node before the file, and then adds thefile, file2 at 52, to the node. The prior art convention of storing thesource paths using shorthand notation traces the file from the firstidentified node to the root. In the instant example, the returned pathmight look like: 6→5→4→3→2→1→0, where the returned source path tracesthrough each node back to the root. Because the path tree has stored thekey for each of the identified nodes, the complete source path isprovided. Further, because each path for each of the files in thedatabase 12 (FIG. 1A) is stored in shorthand notation as illustrated,memory is conserved.

As stated above, the conservation of memory is often at the expense ofperformance. In the instant example, although memory is saved in the useof the illustrated shorthand notation, each time a file is processed,the path is traced back through each identified node to the root. If afile is close to the root, the processing speed is only minimallyimpacted as the tracing is through minimal nodes. In the case of filesthat are located deep within a directory's hierarchy, however, theprocessing is more complex as files are traced through more and morenodes. When the number of files being processed is great, performancedegradation is compounded. A typical recording operation to opticalmedia can include hundreds, even thousands, of files, and processingperformance in the manner as just described can be significantlyimpacted.

In view of the foregoing, what is needed is a method for processingfiles in preparation for burning to optical media that quickly andaccurately identifies the selected file source paths withoutsignificantly degrading system performance. The method should be able tobe implemented in existing applications, and should be configured toprovide a consumer with fast and efficient file processing of selectedfiles for burning to optical media without requiring specializedknowledge or skill on the part of the consumer.

SUMMARY OF THE INVENTION

Broadly speaking, the present invention fills these needs by providing amethod for processing data to be recorded to optical media. The presentinvention can be implemented in numerous ways, including as a process,an apparatus, a system, a device, a method, or a computer readablemedia. Several embodiments of the present invention are described below.

In one embodiment, a method for processing data to be recorded tooptical media is disclosed. The method includes receiving a request torecord data to optical media, and mapping a source path for the data ifthe file path has not been previously mapped or associating the data tobe written with a source path, which has been previously mapped, whereinthe source path includes a complete path from a root directory to a filelocation of the data. The method further includes saving the source pathfor the data to a file system database for efficiently processing dataselected to be recorded to the optical media, and retrieving the sourcepath from the file system database in a single step without successivetracing to the root directory to record the data to optical media.

In another embodiment, a computer-implemented method for processing datato be written to an optical media is provided. The computer-implementedmethod includes identifying files selected for writing to the opticalmedia. For each identified file, the method includes determining whetherthe identified file has been previously written to the optical media,and if previously written, the method moves to copy a file path,including a complete path from a root directory to a file location ofthe data, for the previously written file to a file system database tobe used for writing the identified file to the optical media. For eachidentified file, if the identified file has not been previously writtento the optical media, the method further includes determining whether aparent directory of the identified file has been previously mapped to asource path, which includes a complete path from a root directory to theparent directory, and using the mapping of the parent directory togenerate a file source path for the identified file to be written to theoptical media if the parent directory has been previously mapped,otherwise, tracing a file source path for the identified file to a rootdirectory through any intervening parent directories to the identifiedfile and using any previously mapped parent directory if available togenerate the file source path for the identified file. For eachidentified file, the method also includes saving the file source path tothe file system database to be used for efficiently processing andwriting the identified file to the optical media. In addition, thecomputer implemented method includes_writing the identified files to theoptical media using the file system database, wherein the file sourcepath identifies a source location of the identified file and can beretrieved from the file system database in a single step withoutsuccessive tracing to the root directory at the time of writing to theoptical media.

In still a further embodiment, a computer readable media having programinstructions for recording data to optical media is provided. Thecomputer readable media include program instructions for identifying alist of files to be recorded, and program instructions for mapping asource path for each file in the list of files if the source path hasnot been previously mapped or associating a file to be written with thesource path which has been previously mapped, the source path for eachfile beginning with a root drive and tracing a file path from the rootdrive to the file including any intermediate directories. The computerreadable media further include program instructions for saving thesource path to a file system database for efficiently processing filesidentified to be recorded to the optical media, and program instructionsfor retrieving the source path for each file in the list of filesincludes obtaining a complete source path for each file from the rootdrive to each file in a single step without successive tracing to theroot directory to record the data to optical media.

The advantages of the present invention are numerous. One notablebenefit and advantage of the invention is that recording speed andefficiency are greatly improved making the recording of data files tooptical media a faster and more efficient task for the average consumer.By saving a complete file source path from root to selected file foreach file selected for recording to optical media, fewer systemresources are required to process and record data to optical media. Thecomplete file source path is retrieved in a single step, therebyeliminating the resource intensive tracing of each source path node whenprocessing and recording each file. In accordance with the presentinvention, the complete file source path is returned in a single stepwhen the path is called for each selected file.

Other advantages of the invention will become apparent from thefollowing detailed description, taken in conjunction with theaccompanying drawings, illustrating by way of example the principles ofthe invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements.

Figure 1A shows a block diagram of the single process of calling thesource path according to the prior art.

Figure 1B shows a block diagram of an exemplary source path with nodesidentified by keys 0-6 according to the prior art.

Figure IC shows a typical source path for file2 as described inreference to Figure 1B according to prior art.

FIG. 2 illustrates a block diagram of the primary operations inpreparing data files to be written to an optical media in accordancewith one embodiment of the present invention.

FIG. 3 shows a block diagram of an exemplary directory tree inaccordance with one embodiment of the invention.

FIG. 4 shows a flow chart diagram illustrating the method operationsperformed for rapid processing of files to burn to an optical media inaccordance with one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An invention for processing data in preparation for recording to opticalmedia is disclosed. In preferred embodiments, a computer-implementedmethod is provided which includes saving file source paths as completepath statements from the root drive or directory to the selected file orfiles for recording to optical media. The complete source path is thenretrieved in a single step for processing and recording without repeatedand successive tracing back through intermediate parent directories tothe root drive or directory. In the following description, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be understood, however,to one skilled in the art, that the present invention may be practicedwithout some or all of these specific details. In other instances, wellknown process operations have not been described in detail in order notto unnecessarily obscure the present invention. FIG. 2 illustrates ablock diagram 100 of the primary operations in preparing data files tobe written to an optical media in accordance with one embodiment of thepresent invention. The method is applicable to writing data files to anytype of optical media (e.g., CD-R discs, CD-RW discs, mini-discs, DVDdiscs, etc.), and is illustrated by way of example using a commoncompact disc (CD). The selection of data files to be recorded to CDinitiates a burn request 102. The selection of files can be accomplishedin any number of ways including, for example, operator input into thesystem through the graphical user interface (e.g., dragging a set offiles to a CD device icon on a computer monitor), or executing a CDread/write software application and in response to a scripted set ofqueries, the operator selecting a group of one or more data files to bewritten to a CD optical disc. The burn request 102 is the selection andidentification of a group of one or more data files to be copied fromtheir source and written to a CD optical disc.

Once the burn request 102 has been initiated, a file system databaseblock 104 is generated. The file system database block performs a numberof file processing operations to map out source locations of each of thefiles, to sequence the selected files in a recording order, to determinewhich files will be sent to system cache during the recording operation,to generate pointers and data structures which are passed to the CDrecording engine 106, and other file processing operations inpreparation for the writing or burning of the selected data files to atarget optical media 110. The CD recording engine 106 then reads theselected files in the writing order into the optical CD recordingcircuitry 108. The optical CD recording circuitry 108 performs theactual writing or burning of the data files to the optical media 1 10.

In the file system database block 104, the data files are examined andprocessed in order to prepare for the selected data files to be recordedon to the CD. Several discrete operations occur in the processing of thedata files as will be discussed in greater detail below. The file systemdatabase block 104 encompasses those various operations that areperformed to prepare selected data to be burned to a CD. In oneembodiment, the file system database block 104 is a collection ofsub-routines or other computer code that functions to manipulate theselected data files, performing functions as described below in theexecution of the software application code that records data to anoptical media.

In one embodiment, the processing includes examining each of the datafiles selected for recording to CD and verifying the source location ofthe file, the file size, the integrity of the file, and other fileattributes to enable the writing of the source data file to adestination CD. In order to verify the source file, and in order toenable the CD recording engine 106 to locate and read the file, the filesystem database block 104 generates a source path for each selected datafile. As described in reference to Figure 1A, a file system database 12is generated containing a source path for each of the files selected forrecording. In one embodiment, the source path contained in the filesystem database 12 is recorded using abbreviated or shorthand notation.A path tree 14 is created to contain a key associated with each of thefile path abbreviations used in the database 12.

FIG. 3 shows a block diagram 150 of an exemplary directory tree inaccordance with one embodiment of the invention. In the block diagram150, nodes 1-6 are identified, and exemplary source paths are easilytraced. The root drive or directory, c:\, is shown in block 152. Thedrive designator, c:\, is exemplary only, and as is known, the root canbe any of identified drives, also called root directories, integral orconnected to a computer system. Node 0 at 151, is root c:\. The simpledirectory tree shown in block diagram 150 includes six directories in asingle branch, and five files in the sixth directory, source6 at 164. Asdescribed in reference to FIG. 1B, each directory defines a node of thedirectory tree. In one embodiment of the present invention, eachdirectory defines a terminal point of a node of the directory tree. InFIG. 3, source1 at 154 defines the terminal point of node 1 at 176,source2 at 156 defines the terminal point of node 2 at 178, source3 at158 defines the terminal point of node 3 at 180, source 4 at 160 definesthe terminal point of node 4 at 182, source5 at 162 defines the terminalpoint of node 5 at 184, and source6 at 164 defines the terminal point ofnode 6 at 186. Each of nodes 1-6 begins at root c:\, 152. In thismanner, a call to retrieve any node is independent of any other node inthe directory tree. Unlike the prior art, which traced a directory treethrough each node from a source file back to the root for the sourcefile, one embodiment of the present invention defines each node from theroot, and therefore returns a complete file path from the root to theterminal directory for each node called.

In FIG. 3, file2 at 168 is used to illustrate one embodiment of thepresent invention. As can be seen in FIG. 3, file2 at 168 is a file indirectory source6 at 164. Source6 at 164 is the terminal directory ofnode 6 at 186. If file2 at 168 were to be selected for burning tooptical media, a database entry might list the source path for file2 at168 as, <path>=get(

)\file2. In the path tree, node 6, 186, is defined as the entire pathfrom the root to the terminal directory, or in the instant example,c:\source1\source2\source3\source4\source5\source6\. File2 at 168 issimply added on to the source path as a file in directory source6 at164, the terminal directory of node 6 at 186.

Each of the illustrated directories, source1 at 154 through source6 at164, can contain one or more files, as well as one or moresub-directories. Additionally, each sub-directory can contain one ormore files in addition to one or more sub-directories. As is known, filestructures can range from the very simple to the extremely complex. Inone embodiment of the present invention, when a file that has beenselected to be recorded to optical media is being processed, the parentof the selected file is identified. If a node has been defined with theidentified parent as the terminal directory, the selected file is simplyadded to the previously defined node that terminates with the identifiedparent directory. If a node that terminates with the identified parenthas not been previously defined in the recording operation, a new nodeis identified that starts with the root and terminates with theidentified parent directory. The entire file path is included in thenode key, which is stored in the path tree. When file-processingoperations call the source path for the selected file, the source pathfrom root to parent is called in a single step, with the selected filecontained in the parent directory that terminates the node.

From the above example, it should be appreciated that simple file anddirectory structures, and source files that are relatively close to theroot, will realize a smaller increment of gain in processing speed overprior art than complex file and directory structures, and in particular,those files found deep within a directory hierarchy. In one embodimentof the invention, the file database 12 (See FIG. 1A) appears comparableto the file database of prior art with selected files identified by pathstatements calling a node identifier or short-hand notation, to get theparent of the selected file, and then the selected file added to thenode indicating the selected file is contained in the parent directoryterminating the called node. The path tree 14 (See FIG. 1A) can be alarger structure than in prior art since nodes are identified by thecomplete file path from root to terminal directory. A call for a node,or source path, returns the file path in one step rather than tracingthrough each intermediate parent directory from the parent of theselected file back to the root. In one embodiment, the additional memoryrequired for the larger structure is minimal, but the increase inprocessing speed can be significant.

FIG. 4 shows a flow chart diagram 200 illustrating the method operationsperformed for rapid processing of files to burn to an optical media inaccordance with one embodiment of the present invention. The methodbegins with operation 202 in which a request is received to write a setof files to an optical media. This operation is also known as a burnrequest. In one embodiment the burn request is received when files areselected, a target optical media recording device is identified, and acommand to copy, move, record, burn, or otherwise write a selected fileor files from a source location to a destination optical media isexecuted.

Once the burn request has been received, the method continues withoperation 204 in which a first data file is processed for writing to anoptical media. As described above in reference to FIG. 2, the selectedfiles are processed through a plurality of operations in preparation forrecording to an optical media. In some applications, several of theprocessing operations are grouped or combined for efficiency, and thesequence in which many of the processing operations are performed canvary according to the program or application utilized to accomplish therecording of the selected files to the destination optical media.Typically, each of the selected files is processed through a pluralityof operations in preparation for recording to optical media. One of theoperations is the identification and mapping of a source path, and thesaving of the source path to a file database. In one embodiment of thepresent invention, the source path mapping is a discrete operationperformed one file at a time until all files have been saved to thedatabase.

In operation 204, a first file is processed for writing to an opticalmedia. In one embodiment, the processing in operation 204 is thereceiving of the first file to map and save the source path. Once thefile has been received, the method proceeds with decision block 206 inwhich it is determined if the file has been previously written to thetarget optical media. In some recording operations, multiple copies ofthe same file are selected to be recorded. In other operations, the samefile may have been modified so that the data contained within the filehas changed since an earlier or previous selection and writing to thetarget optical media. In decision block 206, it is simply verifiedwhether the same file has been previously written to the destination ortarget optical media. If so, a “yes” to decision block 206, the methodadvances to operation 220 in which the file path is copied into thedatabase. Operation 220 is discussed in greater detail to follow. If thefile has not previously been written to the destination optical media, a“no” to decision block 206, the method advances to operation 208.

In operation 208, the parent directory of the selected file isdetermined. As is known, any directory can contain a plurality of files,and the determination of a source path for any file is the tracing of afile through its parent, and any subsequent parent directories to itsroot.

The method next continues with decision block 210 in which it isdetermined whether or not the parent directory has been previouslymapped to the destination or target optical media. If so, a “yes” todecision block 210, the method proceeds with operation 212 in which thefile path for the parent directory is copied. The method next adds thedata file to the file path in operation 214. In one embodiment, the filepath for the parent directory that is copied in operation 212 is anabbreviation or shorthand notation for a node identifier. As illustratedin FIG. 3, a shorthand identifier for a node notation might be a numericidentifier. In another embodiment, the identifier might be analphanumeric notation, and in yet another embodiment, the identifier isnoted in machine code. If the source path of the parent directory hasbeen previously identified and saved as a node, the parent directory ofthe file being processed terminates the node. When the file is added tothe abbreviated or shorthand node notation corresponding to the filepath of the parent directory in operation 214, the resulting file sourcepath indicates the selected file being processed is located in theparent directory that terminates the previously identified node.

Following the adding of the data file to the copied file path inoperation 214, the method continues with operation 220 in which thecomplete file path is saved to the file database. In one embodiment, thesaving of the complete file path is in shorthand or abbreviated notationas described above. It should be noted that the previously mapped filepath terminating with the parent directory that is identified with anabbreviated or shorthand notation node identifier is saved in the pathtree. In one embodiment, the complete path beginning with the root andterminating with the parent directory is saved under a key in the pathtree corresponding to the node identifier. Therefore, a path in the filedatabase described with a node identifier and the selected file, isreturned with a complete source path from the path tree.

If the parent directory of the selected file, the file currently beingprocessed, has not been previously mapped to the target or destinationoptical media, a “no” to decision block 210, the method advances tooperation 216. In operation 216, the source path to the root, or to thefirst previously identified and mapped node, whichever comes first, istraced. In one embodiment of the present invention, a node starts withthe root, and terminates with the parent directory of the selected filebeing processed. If the tracing of the file path arrives first at apreviously identified node, the remaining path to the root is savedunder the key corresponding node identifier in the path tree and iscalled to complete the path. If the tracing continues without reaching apreviously identified node all the way to the root, no previouslydefined node is called, and in either case, the traced source path fromthe root and terminating with the parent directory defines a new node.In another embodiment, if it is determined the parent directory has notbeen previously identified and mapped; the source is traced all the wayto the root whether or not previously identified nodes are encountered.

In one embodiment, the tracing of the source path in operation 216includes the identification of the source path from the root drive ordirectory and terminating in the parent directory as a node. Thecomplete source path is assigned a node identifier for shorthand orabbreviated notation, and saved under the corresponding key in the pathtree. Once the path has been traced, and the complete source path savedin the path tree, the method continues with operation 218 in which theselected data file, the file currently being processed, is added to thefile path. The method then continues with operation 220 in which thefile path is copied into the database. In one embodiment, the copiedfile path includes the shorthand or abbreviated node identifier and theselected file.

Following operation 220 in which the file path is copied into thedatabase, and previous operations in which complete source paths havebeen saved to the path tree, the method advances to decision block 222where it is determined if there are more files to process. In theinstant example, the method has been illustrated with a first data filefor recording to optical media. If there are more files selected forrecording to the target or destination optical media, a “yes” todecision block 222, the method advances through operation 224 in whichthe next data file is processed for writing to optical media, and loopsback to decision block 206 where it is determined if the next data filehas been previously written to the target or destination optical media.The method is then repeated as described above for the first data file.In operation 224, as described for operation 204, the processing of thenext data file includes receiving a next data file for mapping andsaving a source path. The method repeats as described for each of thedata files selected to be written to a target or destination opticalmedia. Once all of the files have been processed, a “no” to decisionblock 222, the method is done.

In accordance with one embodiment of the present invention, followingthe processing of each of the files selected for burning to a target ordestination optical media, a file source path for each of the selectedfiles is saved for each file in a file database. The file databaseincludes a source path in an abbreviated or shorthand notation. A filepath tree contains a key associated with the abbreviated or shorthandnotation, which returns the complete source path from a root drive ordirectory to the selected file. In this manner, the retrieval of thesource path of a selected file during the burning of the selected fileto a destination or target optical media is a one-step operation withoutadditional processing time and resources dedicated to tracing a filethrough each source path node to a root.

The invention may employ various computer-implemented operationsinvolving data stored in computer systems. These operations are thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. Further, the manipulationsperformed are often referred to in terms, such as producing,identifying, determining, or comparing.

Any of the operations described herein that form part of the inventionare useful machine operations. The invention also relates to a device oran apparatus for performing these operations. The apparatus may bespecially constructed for the required purposes, or it may be ageneral-purpose computer selectively activated or configured by acomputer program stored in the computer. In particular, variousgeneral-purpose machines may be used with computer programs written inaccordance with the teachings herein, or it may be more convenient toconstruct a more specialized apparatus to perform the requiredoperations.

The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can thereafter be read by acomputer system. Examples of the computer readable medium includeread-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetictapes, and other optical data storage devices. The computer readablemedium can also be distributed over network coupled computer systems sothat the computer readable code is stored and executed in a distributedfashion.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications may be practiced within the scope of theappended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

1. A method for processing data to be recorded to optical media,comprising: receiving a request to record data to optical media; mappinga source path for the data if the file path has not been previouslymapped or associating the data to be written with a source path, whichhas been previously mapped, wherein the source path includes a completepath from a root directory to a file location of the data; saving thesource path for the data to a file system database for efficientlyprocessing data selected to be recorded to the optical media; andretrieving the source path from the file system database in a singlestep without successive tracing to the root directory to record the datato optical media.
 2. A method for processing data to be recorded tooptical media as recited in claim 1, wherein saving the source path tothe file system database includes identifying a node of the source path,the node being a part of the source path from the root directory to aparent directory of the data to be recorded to optical media.
 3. Amethod for processing data to be recorded to optical media as recited inclaim 2, wherein a node identifier corresponds to the source path of thenode.
 4. A method for processing data to be recorded to optical media asrecited in claim 3, wherein the node identifier is saved to the filesystem database and the corresponding source path from the root to theparent directory of the node is saved to a path tree.
 5. A computerimplemented method for processing data to be written to an opticalmedia, the computer implemented method comprising: identifying filesselected for writing to the optical media; for each identified file, themethod includes, determining whether the identified file has beenpreviously written to the optical media, and if previously written, themethod moves to copy a file path, including a complete path from a rootdirectory to a file location of the data, for the previously writtenfile to a file system database to be used for writing the identifiedfile to the optical media; and if the identified file has not beenpreviously written to the optical media, the method includes,determining whether a parent directory of the identified file has beenpreviously mapped to a source path, which includes a complete path froma root directory to the parent directory; using the mapping of theparent directory to generate a file source path for the identified fileto be written to the optical media if the parent directory has beenpreviously mapped, otherwise, tracing a file source path for theidentified file to a root directory through any intervening parentdirectories to the identified file and using any previously mappedparent directory if available to generate the file source path for theidentified file; saving the file source path to the file system databaseto be used for efficiently processing and writing the identified file tothe optical media; and writing the identified files to the optical mediausing the file system database, wherein the file source path identifiesa source location of the identified file and can be retrieved from thefile system database in a single step without successive tracing to theroot directory at the time of writing to the optical media.
 6. Acomputer implemented method for processing data to be written to anoptical media as recited in claim 5, wherein saving the file source pathto the file system database includes identifying a node of the filesource path, the node being a part of the file source path from the rootdrive to the parent directory of the identified file.
 7. A computerimplemented method for processing data to be written to an optical mediaas recited in claim 6, wherein a node identifier corresponds to thesource path of the node.
 8. A computer implemented method for processingdata to be written to an optical media as recited in claim 7, whereinthe node identifier is saved to the file system database and thecorresponding source path from the root drive to the parent directory ofthe node is saved to a path tree.
 9. A computer readable media havingprogram instructions for recording data to optical media, the computerreadable media comprising: program instructions for identifying a listof files to be recorded; program instructions for mapping a source pathfor each file in the list of files if the source path has not beenpreviously mapped or associating a file to be written with the sourcepath which has been previously mapped, the source path for each filebeginning with a root drive and tracing a file path from the root driveto the file including any intermediate directories; program instructionsfor saving the source path to a file system database for efficientlyprocessing files identified to be recorded to the optical media; andprogram instructions for retrieving the source path for each file in thelist of files includes obtaining a complete source path for each filefrom the root drive to each file in a single step without successivetracing to the root directory to record the data to optical media.
 10. Acomputer readable media having program instructions for recording datato optical media as recited in claim 9, wherein saving the source pathto the file system database includes identifying a node of the sourcepath, the node being a part of the source path from the root drive to aparent directory of each file to be recorded to optical media.
 11. Acomputer readable media having program instructions for recording datato optical media as recited in claim 10, wherein a node identifiercorresponds to the source path of the node.
 12. A computer readablemedia having program instructions for recording data to optical media asrecited in claim 11, wherein the node identifier is saved to the filesystem database and the corresponding source path from the root drive tothe parent directory of the node is saved to a path tree.